Verifying File System Consistency at Runtime
ثبت نشده
چکیده
Existing file-system reliability methods, such as checksums, redundancy, or transactional updates, provide limited defenses against file-system bugs that cause disk corruption. The existing workarounds, based on using backups or repairing the file system, are painfully slow. Worse, the recovery is performed much after the error occurred, and thus may result in further corruption and data loss. We present a system that protects file system metadata from buggy file system operations. Our approach leverages modern file systems that provide crash consistency using transactional updates. We define declarative statements called "consistency invariants" for a file system. These invariants must be satisfied by each transaction being committed to disk to preserve file system integrity. By checking each transaction before it commits, we can minimize the damage caused by buggy file systems. The major challenges to this approach are specifying invariants, and correctly interpreting file system behaviour without relying on the file system code. Our prototype system, called Recon, provides a framework for file-system specific metadata interpretation and invariant checking. We show the feasibility of interpreting metadata and writing consistency invariants for the Linux ext3 and btrfs file systems in this framework. For ext3, Recon can detect random as well as targeted file-system corruption at runtime as effectively as the offline e2fsck filesystem checker, with low performance overhead.
منابع مشابه
Robust Consistency Checking for Modern Filesystems
We describe our approach to building a runtime file system checker for the emerging Linux Btrfs file system. Such checkers verify the consistency of file system metadata update operations before they are committed to disk, thus preventing corrupted updates from becoming durable. The consistency checks in Btrfs are complex and need to be expressed clearly so that they can be reasoned about and i...
متن کاملModular Enforcement of Supertype Abstraction and Information Hiding with Client-Side Checking
Static reasoning tools for object-oriented (OO) languages use supertype abstraction, by verifying calls to methods using the specification associated with the receiver’s static type. Unfortunately, contemporary runtime assertion checkers for OO are inconsistent with such static reasoning tools, since they check assertions in an overly-dynamic way on the supplier side. For method calls, such sup...
متن کاملEXPLODE: A Lightweight, General Approach to Finding Serious Errors in Storage Systems
File systems, RAID systems, and applications that require data consistency, among others, assure data integrity by carefully forcing valuable data to stable storage. Unfortunately, verifying that a system can recover from a crash to a valid state at any program counter is very difficult. Previous techniques for finding data integrity bugs have been heavyweight, requiring extensive effort for ea...
متن کاملHigh Performance Metadata Integrity Protection in the WAFL Copy-on-Write File System
We introduce a low-cost incremental checksum technique that protects metadata blocks against in-memory scribbles, and a lightweight digest-based transaction auditing mechanism that enforces file system consistency invariants. Compared with previous work, our techniques reduce performance overhead by an order of magnitude. They also help distinguish scribbles from logic bugs. We also present a m...
متن کاملChecking Correctness At Runtime using Real-Time Java
Correctness of a real-time system depends on its computation as well as its timeliness. In recent years, research has been focusing on verifying the correctness of a real-time system during runtime by monitoring its runtime execution and checking it against its formal specifications. Such verification method is called Runtime Verification. While a few existing runtime verification tools verify ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2011